本文介绍如何从OpenStreetMap获取地图,并转换成符合The ONE仿真器使用的wkt
格式。
1. 从OpenStreetMap获取地图
打开OpenStreetMap官网,相应操作如下图:
点击Export
后,跳转到另一个页面,理论上是开始下载osm
数据,但我试了几次,一直都没反应。没关系,把网址复制下来,用wget
工具下载,如下(-O
后面是输出的文件名):
wget -O toulouse.osm "http://api.openstreetmap.org/api/0.6/map?bbox=1.3637,43.5464,1.5209,43.6366"
这样就得到osm
数据了。
2. 转换成wkt格式
osm
数据是xml
格式,已有人写了一个工具叫osm2wkt,可以将osm
转换成wkt
格式。点击这里下载jar
包,运行下面命令,即可完成转换:
java -jar ./osm2wkt.jar toulouse.osm
osm2wkt使用方法如下:
generate+cleanup from osm: >> java -jar ./osm2wkt.jar mapfile.osm
cleanup from wkt : >> java -jar ./osm2wkt.jar mapfile.wkt
options:
-o outputfile - write output to given file
-a - append to output file
-t X Y - translate map by x=X and y=Y meters
PS:实际上,我没转换成功,osm2wkt
先提示缺少</img>
标记,加上去之后,还提示只处理osm
格式而不能是html
格式。
3. 讨论
OpenStreetMap相当于是地图的元数据,如果过滤出自已想要的数据,这才是难点。比如我想过滤出公共交通的行走路线,还有我如何将一个城市抽象成一个点?请指点!